草庐IT

c++ - std::make_pair 与 c++ 11

全部标签

c++ - 使用 C/C++ 在 Windows 资源管理器中打开目录

我正在用C++制作游戏,我在一个奇怪的位置(安装目录)有一个目录,其中包含使用PrintScreen键截取的游戏截图。我想做的是创建一个按钮,用于打开带有屏幕截图位置的Windows资源管理器。我正在考虑将C的system函数与explorer.exe和一些参数一起使用,但我认为这不是正确的做法。我可能会在全屏模式下禁用此功能,因为我想避免意外行为。 最佳答案 最好的方法是使用SHOpenFolderAndSelectItems()功能。这让您可以打开默认文件夹管理器(即不硬编码到Explorer,尊重用户的选择)并具有让您自动选择

c++ - 如何在进程间通信中获取其他端点的进程ID

使用Win32C++API,我想知道哪个IPCmethod,允许多进程通信中的任何端点获取与之通信的进程的PID或HANDLE。换句话说,如果进程A从进程B收到一条消息:如果B没有(直接)在发送的消息中给出任何提示,A可以知道B发送了消息吗?如何?要求:B的PID不能在IPC消息中发送给A。通信的目的是简单的远程过程调用。但是,我不希望远程系统/主机上的进程调用本地主机上运行的进程提供的过程。我当然找到了RPCdocumentationonMSDN.但是,我想知道是否有比RPC更好的方法来实现我想要的。或者,如果您认为RPC是可行的方法,能否告诉我原因以及您是否知道除MSDN之外还有其

c++ - 在目录中获取目录中的文件列表

这个问题在这里已经有了答案:HowcanIgetthelistoffilesinadirectoryusingCorC++?(33个答案)关闭8年前。我在这个目录中有一个名为“BaseFile”的目录,我有几个名为“Dir1”、“Dir2”、“Dir3”等的目录,在这些子目录中,我有我需要通过代码列出的文件列表。有人可以给我一些关于如何做到这一点的提示吗?我需要在Windows和Linux平台上都这样做..

c - RegCreateKeyEx() 和 GetLastError()

为什么是RegCreateKeyEx()返回LONG,而不是设置DWORD错误代码来自SetLastError()?转换它的LONG对我来说安全吗?将值返回给DWORD然后用SetLastError()将其设置为全局错误代码?http://msdn.microsoft.com/en-us/library/windows/desktop/ms724844(v=vs.85).aspx 最佳答案 WhyisitthatRegCreateKeyEx()returnsaLONG,insteadofsettingaDWORDerrorcodev

c - 使用 WinAPI 按名称获取进程中的指针变量

我不确定问题的标题有多清楚。这是我正在尝试做的事情:我有一个进程,它使用DLL库作为插件。这些库使用函数,与临界区对象同步。我希望所有DLL函数都与相同的临界区对象同步。我想到了以下几点:第一个DLL将初始化一个临界区对象,其他DLL也将使用它,而不是初始化一个新的。但是我怎样才能得到指向第一个DLL的临界区对象的指针呢?我想到的一个解决方案是使用NamedSharedMemory,并将指向临界区对象的指针放在那里。它会起作用,但感觉就像用火箭筒射苍蝇一样。是否有更简单、更惯用的方法来创建具有可检索指针的命名对象? 最佳答案 一个D

c - Windows 和 Linux 中 printf 的区别

其实除了核心C语言,还有一个C库。如果我的理解是正确的,像printf这样的函数是C库的一部分。现在我已经在Windows的TurboC中用C语言编程,在Linux中使用gcc。我的问题是:像printf这样的函数在windows和linux中的代码实现是一样的吗?最终printf函数必须调用核心操作系统中的一个函数(在这两种情况下),以便在屏幕上显示ASCII字符?那么,由于两种操作系统不同,printf的代码实现在两种情况下是否也不同? 最佳答案 当然(printf的实现和中的所有函数)是不同的(在Linux和Windows上)

c++ - 无法弄清楚 DirectX11 的着色器?

所以,我不知道如何使用着色器。对它们进行编码很容易,但实际上使用它们并不容易。MSDN对我来说真的没用,这意味着他们有最糟糕的教程。我目前正在阅读FrankLuna的Direct3d11书,我终于到了真正开始绘制东西的部分。令人兴奋,除了它不起作用的事实。他的BoxDemo-我肯定在3年前制作这本书时工作过,但现在有了所有新的DirectX东西-省略了DirectXSDK,现在使用“WindowsSDK”,FX被弃用,不再有D3DX库......太令人沮丧了。我继续降级到DirectX2010SDK-这样我就可以实际使用教程了。几乎所有的D3D教程都使用D3DX库。无论如何...现在回

c++ - ID3D11DeviceContext::Map 性能低下

我正在使用桌面复制将屏幕内容复制到内存中的位图中。我收到桌面纹理,然后创建暂存纹理,使用CopyResource将桌面纹理复制到暂存纹理中,最后调用ID3D11DeviceContext::Map访问暂存纹理位和复制它们。与此处描述的方式几乎相同:https://stackoverflow.com/a/27283837/825318问题是Map调用需要花费大量时间-对于4K等大型显示分辨率,每次调用最多可能需要100毫秒,这高得令人无法接受,因为我需要确保30fps速度。有没有什么办法可以更快的获取贴图的内容?如果没有,有没有办法提供我自己的映射地址指针,以便系统将纹理数据复制到那里?

c - IsAdminUser 返回不正确的值

我正在使用Win32::IsAdminUser()函数(无法粘贴代码,因为要使其可运行,我必须粘贴整个代码)。它返回0,我很好奇为什么因为运行它的用户是Administrators组的成员,所以我创建了一个小测试函数(c++)并在运行IsAdminUser之前运行它这是代码:intdavai(){FILE*fp;fp=fopen("C:\\tmp\\davai.txt","a");fprintf(fp,"shevedidavai");fflush(fp);HANDLEtoken=NULL;HANDLEdupToken=NULL;if(!OpenProcessToken(GetCurre

c++ - 从 dll 函数调用中正确获取 Windows 版本?

假设我正在编写一个包含获取操作系统版本的函数的多用途dll:voidget_os_version(DWORD*major,DWORD*minor){OSVERSIONINFOEXosvi;ZeroMemory(&osvi,sizeof(OSVERSIONINFOEX));osvi.dwOsVersionInfoSize=sizeof(OSVERSIONINFOEX);//deprecatedbuteasiertouseforthisexample'ssakeGetVersionEx((OSVERSIONINFO*)&osvi);*major=osvi.dwMajorVersion;*m